package com.gdwstudy.customeGeneric;

/**
 * @author 关道伟
 * @version 1.0
 */
public class CustomeGeneric {
    public static void main(Sintrg[] args) {
        Car car = new Car();
        car.fly("宝马",100);//编译器确定对应的类型

        Fish<Integer, Double> fish = new Fish<>();//class Fish<T,R>
        fish.hello(12.1,22.2f);//public<K> void hello(R r,K k)
    }
}

//泛型方法，可以定义在普通类中 也可以定义在泛型类中
class Car{//普通类
    public void run(){//普通方

    }
    //注意泛型方法和方法使用泛型
    public<T,R> void fly(T t,R r){//泛型方法 提供给fly使用
        System.out.println(t);//
    }


}

class Fish<T,R>{//泛型类
    public void run(){

    }

    public <U,M> void eat(U u,M m){//泛型方法

    }

    public void hi(T t){
        System.out.println("此方法不是泛型方法，而是这个方法使用了类声明的泛型");
    }

    //泛型方法可以使用类生命的泛型 也可以使用自己声明的泛型
    public<K> void hello(R r,K k){
        System.out.println(r.getClass());
        System.out.println(k.getClass());
    }
}